package cn.iocoder.yudao.module.reading.dal.dataobject.record;

import cn.iocoder.yudao.framework.mybatis.core.dataobject.BaseDO;
import cn.iocoder.yudao.module.reading.enums.common.ReadingModeEnum;
import com.baomidou.mybatisplus.annotation.KeySequence;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import lombok.*;

import java.time.LocalDateTime;

/**
 * 用户阅读记录 DO
 *
 * @author 芋道源码
 */
@TableName("reading_records")
@KeySequence("reading_records_seq")
@Data
@EqualsAndHashCode(callSuper = true)
@ToString(callSuper = true)
@Builder
@NoArgsConstructor
@AllArgsConstructor
public class ReadingRecordDO extends BaseDO {

    /**
     * 记录ID
     */
    @TableId
    private Long id;
    /**
     * 用户ID
     */
    private Long userId;
    /**
     * 绘本ID
     */
    private Long bookId;
    /**
     * 关联计划ID（可选）
     */
    private Long planId;
    /**
     * 是否完成阅读
     */
    private Boolean isCompleted;
    /**
     * 阅读进度（0-1）
     */
    private Double readingProgress;
    /**
     * 最后阅读页码
     */
    private Integer lastPage;
    /**
     * 阅读时长（秒）
     */
    private Integer readingTime;
    /**
     * 阅读模式
     * 
     * 枚举 {@link ReadingModeEnum}
     */
    private String readingMode;
    /**
     * 首次阅读时间
     */
    private LocalDateTime firstReadAt;
    /**
     * 最后阅读时间
     */
    private LocalDateTime lastReadAt;
    /**
     * 完成阅读时间
     */
    private LocalDateTime completedAt;

}
